در خانواده رد هت (Red Hat)، دو ابزار اصلی برای مدیریت بستهها وجود دارد:
dnf (روش آنلاین و خودکار)rpm (روش آفلاین و دستی)
dnf یک مدیر بسته سطح بالا است که وابستگیها را بهطور خودکار مدیریت میکند.
اما rpm یک ابزار سطح پایین است که مستقیماً با فایلهای .rpm کار میکند
و وابستگیها را خودکار حل نمیکند.
dnf مخفف Dandified YUM است و نسل جدید مدیر بسته در خانواده رد هت محسوب میشود.
| دستور | توضیح |
|---|---|
sudo dnf update |
بهروزرسانی همه بستهها به آخرین نسخه |
sudo dnf install [package] |
نصب یک بسته جدید |
sudo dnf remove [package] |
حذف یک بسته |
sudo dnf autoremove |
حذف بستههای غیرضروری |
dnf search [keyword] |
جستجوی بسته در مخازن |
dnf info [package] |
نمایش اطلاعات کامل یک بسته |
sudo dnf upgrade |
ارتقاء بستهها (مشابه update) |
sudo dnf distro-sync |
همگامسازی بستهها با مخزن (رفع اختلاف نسخه) |
sudo dnf groupinstall "Group Name" |
نصب یک گروه از بستهها |
sudo dnf history |
نمایش تاریخچه عملیات dnf |
توضیح: ابتدا سیستم بهروز شد، سپس htop نصب شد.
rpm مخفف Red Hat Package Manager است و اصلیترین ابزار برای کار با فایلهای .rpm است.
| گزینه | توضیح |
|---|---|
-i یا --install |
نصب یک بسته .rpm |
-e یا --erase |
حذف یک بسته |
-q یا --query |
پرس و جو (Query) درباره یک بسته |
-qa یا --query --all |
لیست همه بستههای نصبشده |
-ql یا --query --list |
لیست فایلهای نصبشده توسط یک بسته |
-qf یا --query --file |
پیدا کردن بستهای که یک فایل خاص را نصب کرده |
-qi یا --query --info |
نمایش اطلاعات یک بسته |
-V یا --verify |
بررسی یکپارچگی بسته |
--nodeps |
نصب بدون بررسی وابستگیها |
توضیح: نصب یک فایل .rpm با گزینههای استاندارد.
توضیح: حذف بسته zsh و سپس تأیید حذف شدن آن.
وقتی با rpm -V یک بسته را تأیید میکنید، کدهای زیر ممکن است نمایش داده شوند:
| کد | توضیح |
|---|---|
? |
امکان انجام تست تأیید وجود ندارد |
5 |
مقدار هش (Digest) تغییر کرده است |
c |
فایل یک فایل کانفیگ برای بسته است |
D |
شماره دستگاه (major/minor) تغییر کرده است |
G |
مالکیت گروه تغییر کرده است |
L |
مسیر لینک تغییر کرده است |
missing |
فایل وجود ندارد |
M |
مجوزها یا نوع فایل تغییر کرده است |
P |
قابلیتها (Capabilities) تغییر کرده است |
S |
اندازه فایل تغییر کرده است |
T |
زمان تغییر (Modification) تغییر کرده است |
U |
مالکیت کاربر تغییر کرده است |
این کدها به شما کمک میکنند تا بفهمید کدام بخش از یک بسته در طول زمان تغییر کرده است و آیا فایلهای آن دستکاری شدهاند یا خیر.
| ویژگی | dnf |
rpm |
|---|---|---|
| سطح | سطح بالا (High-level) | سطح پایین (Low-level) |
| مدیریت وابستگیها | ✅ خودکار | ❌ دستی (مشکلدار) |
| نیاز به مخزن | ✅ بله | ❌ خیر (فایل .rpm کافی است) |
| نصب آفلاین | ❌ خیر | ✅ بله |
| حل وابستگیها | ✅ خودکار | ❌ باید جداگانه نصب شوند |
| جستجو در مخزن | ✅ بله (dnf search) |
❌ خیر |
| تأیید یکپارچگی | ❌ خیر | ✅ بله (rpm -V) |
| عملیات | دبیان (Debian) | رد هت (Red Hat) |
|---|---|---|
| نصب از مخزن | sudo apt install htop |
sudo dnf install htop |
| حذف | sudo apt remove htop |
sudo dnf remove htop |
| بهروزرسانی | sudo apt update && sudo apt upgrade |
sudo dnf update |
| جستجو | apt search htop |
dnf search htop |
| نصب آفلاین | sudo dpkg -i package.deb |
sudo rpm -ivh package.rpm |
| لیست فایلهای بسته | dpkg -L htop |
rpm -ql htop |
sudo dnf update سیستم را بهروز کنید.sudo dnf install neofetch یک بسته نصب کنید.rpm -ql neofetch فایلهای نصبشده را ببینید.sudo dnf remove neofetch بسته را حذف کنید.rpm -V neofetch یکپارچگی بسته را بررسی کنید (اگر نصب باشد).rpm -qa | grep zsh بستههای مربوط به zsh را پیدا کنید.